Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tap-arc

Package Overview
Dependencies
Maintainers
3
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tap-arc

spec-like TAP reporter

  • 0.3.5
  • Source
  • npm
  • Socket score

Version published
Maintainers
3
Created
Source

tap-arc

A small (~23kB) TAP reporter with spec-like output, streaming, and failure diffing.

Objectives

  • minimal, informative spec-like output for all assertions
  • minimal, maintained dependencies -- can't be shipping React to CI
  • streaming in and out
  • helpful diffing for failures

tap-arc output screen shot

Installation & Usage

Compatible with Node.js 12+.

For a JavaScript project, save tap-arc as a development dependency:

npm i -D tap-arc

Simply pipe tap output to tap-arc.
Example npm test script:

// package.json
"scripts": {
  "test": "tape test/**/*.js | tap-arc"
}

💁 tap-arc will format output from any tap reporter. tape was used for testing.

Alternatively, use tap-arc globally:

npm i -g tap-arc

tap-arc --help

Usage:
  tap-arc <options>

Parses TAP data from stdin, and outputs a "spec-like" formatted result.

Options:

  -v | --verbose
    Output full stack trace

  -p | --pessimistic | --bail
    Immediately exit upon encountering a failure
    example: tap-arc -p

  --no-color
    Output without ANSI escape sequences for colors
    example: tap-arc --no-color

Development

The entirety of the reporter lives in ./index.js.

When building tap-arc, it's helpful to try various TAP outputs. See package.json "scripts" for useful "tap-arc:*" commands to test passing and failing TAP.

npm run tap-arc:simple # used to create the screen shot above

Snapshot tests

The main library is snapshot tested (npm test loads all snapshots to compare to current output). Create snapshots with the npm run make-snapshots commands.

The snapshots are versioned by Node.js' major version, ie. node14 and node16. But snapshots may vary between minor and patch versions of Node. (Line numbers of Node internals shift, causing changes in stack traces.) GitHub's Actions are set to use the latest Node.js 14.x and 16.x, so when testing and creating snapshots locally, do the same.

This is also why tape is pinned as a development dependency. Update as needed, but recreate snapshots.

Request: please exclude updated snapshots from commits if the only change is to the duration line. This variance is accounted for in the tests.

Credit & Inspiration

  • tap-spec ol' reliable, but a bit stale and npm vulnerabilities
  • tap-difflet inspired output and diffing, also vulnerable
  • tap-min helpful approaches to streaming and exit codes

Keywords

FAQs

Package last updated on 11 Jul 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc